<?php
class class_GeneraPlanillas
{
	private $_db; 
	function __construct()
	{
		$this->config();
	}
	private function config(){
		require_once("conexion.php");
		require_once("DataBase.php");
		$this->_db = new DataBase($SERVIDOR,$USUARIO,$PASSWORD,$BASE);
		mysql_query("SET NAMES utf8");
	}
	function method_getObrasSociales($params, $error)
    {
        if (count($params) != 0) { $error->SetError(JsonRpcError_ParameterMismatch, "Se esperaban 0 parametros; se envio: " . count($params)); return $error; }
    	$this->_db->setQuery("
    	SELECT cod_obra_social AS value, descripcion AS label 
    	FROM obras_sociales
    	WHERE cod_obra_social > 0
    	ORDER BY descripcion
    	");
    	$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	$result = $this->_db->loadResult();
		return $result;
    }
	function method_getPlanes($params, $error) {
		$this->_db->setQuery("
			SELECT cod_plan AS value, descripcion AS label 
			FROM planes 
			WHERE cod_obra_social = '" . $params[0]->cod_obra_social . "'
			ORDER BY descripcion
			");
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		return $this->_db->loadResult();
	}
	function method_getPacientesAtendidos($params, $error)
    {   
    	$filtro_plan ="";
    	if($params[0]->cod_plan != ""){
    		$filtro_plan  = " AND turnos.cod_plan = '". $params[0]->cod_plan ."' ";
    	}
    	if($params[0]->cod_clinica != ""){
    		$filtro_clinica = " AND turnos.cod_clinica = '". $params[0]->cod_clinica ."' ";
    	}	
//     	$this->_db->setQuery("SELECT CONCAT('os_', tabla) AS tabla FROM obras_sociales WHERE cod_obra_social = '" . $params[0]->cod_obra_social . "'");
// 		$this->_db->alter();
// 		$res = $this->_db->loadResult();
//**************************************************************************************************************************************
//********** AQUI CAMBIE APROPOSITO LA FORMA QUE MUESTRA LA FECHA PORQUE SINO EL ORDENAMIENTO FUNCIONA MAL (EJ. 01/03/2010 < 10/02/2010)
//**************************************************************************************************************************************
        $this->_db->setQuery("
        	SELECT turnos_os.cod_turno, 
        		clinicas.descripcion as clinica,
        		turnos.dni_paciente, CONCAT(apellido, ', ', nombres) AS paciente, 
        		turnos.fecha_asignada AS fecha_atendido,
        		turnos_os.*,
        		nomenclador.codigo AS codigo,
        		IF(turnos.cod_plan=pacientes.cod_plan1, pacientes.nro_afiliado1, pacientes.nro_afiliado2) AS nro_afiliado
        	FROM  turnos_os 
        	INNER JOIN turnos ON turnos_os.cod_turno = turnos.cod_turno ". $filtro_plan . $filtro_clinica . "
        	INNER JOIN clinicas USING(cod_clinica) 
        	INNER JOIN pacientes ON turnos.dni_paciente = pacientes.dni_paciente 
        	LEFT JOIN nomenclador ON turnos_os.cod_nomenclador = nomenclador.cod_nomenclador
        	WHERE turnos_os.estado = 'A'
        ");
    	$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	$regs = $this->_db->loadResult();
    	$result = array();
    	FOREACH ($regs as $reg)
		{
			$row = array();
			array_push($row, $reg->cod_turno);
			array_push($row, $reg->clinica);
			array_push($row, $reg->dni_paciente);
			array_push($row, $reg->paciente);
			array_push($row, $reg->nro_afiliado);
			array_push($row, $reg->fecha_atendido);
			array_push($row, $reg->codigo);
			array_push($row, $reg->codigo_habilitacion);
			array_push($row, $reg->importe);
			array_push($result, $row);
		}
		return $result;
    }
	function method_generaPlanilla($params, $error)
    {
        if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Se esperaban 1 parametros; se envio: " . count($params)); return $error; }

        
        $registros = "";
        FOREACH ($params[0]->registros as $reg)
        {
        	if ($registros == "")
        	{
        		$registros = " cod_turno = '" . $reg . "' ";
        	}
        	else
        	{
        		$registros .= " OR cod_turno = '" . $reg . "' ";
        	}
        }
        $q = mysql_query("START TRANSACTION");
        if ($params[0]->nro_planilla) {
        	$q = mysql_query("
        	SELECT *
        	FROM planillas
        	WHERE cod_planilla_cobro = '" . $params[0]->nro_planilla . "'
        	AND cod_obra_social = '" . $params[0]->cod_obra_social . "'
        	AND cod_plan = '" . $params[0]->cod_plan . "'
        	");
        	if (mysql_num_rows($q) <= 0) {
        		$error->SetError(JsonRpcError_Unknown, "ERROR: El nro de Planilla ingresado NO EXISTE/NO PERTENECE a esa Obra Social con el Plan Seleccionado."); mysql_query("ROLLBACK"); return $error;
        	} else {
        		$id_planilla = $params[0]->nro_planilla;
        	}
        	if ($params[0]->nro_factura) {
	        	$q = mysql_query("
	        	UPDATE planillas
	        	SET nro_factura = '" . $params[0]->nro_factura . "',
	        	tipo_factura = '" . $params[0]->tipo_factura . "'
	        	WHERE cod_planilla_cobro = '" . $id_planilla . "'
	        	LIMIT 1
	        	");
        	}
        	
        	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); mysql_query("ROLLBACK"); return $error; }
        } else {
	        $q = mysql_query("
        	INSERT planillas (
        	cod_obra_social, 
        	cod_plan, 
        	nro_factura, 
        	tipo_factura, 
        	fecha, hora
        	)
        	VALUES (
        	'" . $params[0]->cod_obra_social . "', 
        	'" . $params[0]->cod_plan . "',  
        	'" . $params[0]->nro_factura . "', 
        	'" . $params[0]->tipo_factura . "', 
        	'" . date("Y-m-d" . "', '" . date("H:i:s") . "'
			)
        					"));
	    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); mysql_query("ROLLBACK"); return $error; }
			$id_planilla = mysql_insert_id();
        }
// 		$this->_db->setQuery("SELECT tabla FROM obras_sociales WHERE cod_obra_social = '" . $params[0]->cod_obra_social . "'");
// 		$this->_db->alter();
// 		$res = $this->_db->loadResult();
    	$q = mysql_query("UPDATE turnos_os SET estado = 'P', cod_planilla_cobro = '" . $id_planilla . "' WHERE " . $registros);
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); mysql_query("ROLLBACK"); return $error; } 
    	
    	mysql_query("COMMIT");
    	return $id_planilla;
    }
}
?>